﻿using Abp.Application.Services;
using Abp.Application.Services.Dto;
using MyCompanyName.AbpZeroTemplate.Prm.Project.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;

namespace MyCompanyName.AbpZeroTemplate.Prm.Project
{
    public interface IProjectAppService : IApplicationService
    {
        Task<PagedResultOutput<ProjectOutPut>> GetAll([FromUri] GetProjectInPut input);

        List<ProjectTeamOutPut> GetProjectTeam([FromUri] int projectId);


        Task<GetProgressOutPut> GetLastProgressOutPut([FromUri]int projectId);


        List<GetProgressOutPut> GetProgressAll([FromUri]int projectId);


        List<GetTeamCommentOutPut> GetTeamComment([FromUri]int projectId);


        Task CreateProject(CreateProjectInPut input);


        Task RemoveProjectTeam([FromUri]int projectRoleId, int projectId);


        Task EditProject(EditProjectInPut input);


        Task EditCost(EditCostInput input);


        Task<ProjectOutPut> Get(int id);


        Task CreateProjectProgress(CreateProjectProgressInput input);


        Task SetProjectTeam(CreateProjectTeamInPut input);


        Task UpdateTeamComment(List<EditTeamCommentInPut> input);


        List<GetOperationLogOutPut> GetOperationLog([FromUri]int projectId);

    }
}
